6.4 POO avanzada
En esta sección se presentan conceptos avanzados de Programación Orientada a Objetos en Python. No son imprescindibles para empezar, pero ayudan a entender y diseñar sistemas más grandes, como un juego con muchos tipos de personajes, enemigos, objetos y niveles.
La idea es saber que existen estas herramientas, para poder reconocerlas cuando aparezcan en ejemplos reales, librerías o proyectos más grandes.
1️⃣ Clases abstractas (abc module)
🟩 Qué es una clase abstracta
Una clase abstracta es una clase que:
- No se puede instanciar directamente.
- Sirve como modelo o plantilla para otras clases.
- Define qué métodos deben existir, pero no necesariamente cómo se implementan.
En un programa, se puede pensar en una clase abstracta como:
“Todas las entidades del juego tendrán ciertos métodos (por ejemplo,
actualizarydibujar), pero cada tipo concreto los implementara a su manera.”
En Python se usan:
- La clase base
ABC(del móduloabc). - El decorador
@abstractmethodpara marcar métodos que deben implementarse en las subclases.